package ghost.gwtex.client;

import com.google.gwt.user.client.ui.TextBox;

/**
 * 支持 Pattern（正则表达式） 校验 的文本框
 * 
	 * 使用正则表达式判断用户录入是否在约定的模式之下
	 * IE和遨游下测试通过
	 * pattren 如：AAA-[0-9]{5,5} 只能录入 AAA-后面带5位的数字
	 * 注意：参数都是空格“”，matches返回 true
 * 
 * 当设置格式时，光标移到文本框时，会提示格式的内容。 已经调用了 setTitle(pattern);
 * 
 * @author aibo 
 * @create date 2007-11-01 
 */

public class PatternTextBox extends TextBox {
   private String pattern = "";
   
   public PatternTextBox(){
	   super();
   }
   
   public PatternTextBox(String pattern){
	   super();
	   this.pattern = pattern;
	   this.setTitle(pattern);
   }
   
   public boolean validate(){
	   return validate(this.pattern);
   }
   
   public boolean validate(String pattern){
		if(pattern==null || pattern.length()<=0){
			//不做判断
			return true;
		}
		String target = getText();
		if(target==null){
			target = "";
		}
		return target.matches(pattern);	   	   
   }
   
	public String getPattern() {
		return pattern;
	}
	
	public void setPattern(String pattern) {
		this.pattern = pattern;
		setTitle(pattern);
	}
}
